Intelligent software agents can perform various tasks for users, such as assisting the user in executing searches on the Internet, updating schedules, and responding to user requests. In some instances, users can interact with the software agent using a natural language user interface. These software agents are becoming increasingly more important as a mechanism for users to interface with electronic devices.